package com.dongbao.util;

import com.dongbao.data.Datacenter;
import com.dongbao.entity.FileLog;

import java.util.List;
import java.util.stream.Collectors;

/**
 * 核心文件工具类
 * */
public class CoreFileUtil {

    /**
     * 传入文件名,检测是否是核心类
     * */
    public static Boolean checkFile(String fileName){
        Boolean validation = false;
        if(Datacenter.protectFiles.size()>0){
            List<FileLog> isAuthorityFile = Datacenter.protectFiles.stream().filter(log -> log.getFileName().equals(fileName)).collect(Collectors.toList());
            if(isAuthorityFile.size()>0){
                /* 判断当前的用户ip地址是否是在白名单 */
                for(FileLog fileLog:isAuthorityFile){
//                    if(fileLog.getLeaderIp().indexOf(Datacenter.clientIp)==-1){
                        validation = true;
//                    }
                }
            }
        }
        return validation;
    }

    /**
     * 判断传入的文件名 判断当前客户端是否存在此文件的白名单中
     * */
    public static boolean checkLeader(String fileName){
        List<FileLog> isAuthorityFile = Datacenter.protectFiles.stream().filter(log -> log.getFileName().equals(fileName)).collect(Collectors.toList());
        if(isAuthorityFile.size()>0){
            FileLog log = isAuthorityFile.get(0);
            /* 判断当前主机IP是否在白名单中 */
            if(log.getLeaderIp().indexOf(Datacenter.clientIp)>-1){
                /* 当前类的白名单中存在此主机,所以跳过提示验证操作 */
                return true;
            }
        }
        return false;
    }

}
